﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.IO;

namespace TratamentoRIWikipedia.Indexacao
{
    class Ordenacao
    {
        public static void Merge()
        {
            File[] arquivos;
            File diretorio = new File("");
            arquivos = diretorio.listFiles();
            string[] termosArqA, termosArqB, teste;
            string linhaArquivoA, linhaArquivoB;
            StreamReader arquivoA, arquivoB;
            StreamWriter arquivoAux;

            arquivoA = new StreamReader(arquivos[0]);
            arquivoB = new StreamWriter(arquivo[1]);

            while ((linhaArquivoA = arquivoA.ReadLine()) != null)
            {
                while ((linhaArquivoB = arquivoA.ReadLine()) != null)
                {

                    termosArqA = linhaArquivoA.Split(' ');
                    termosArqB = linhaArquivoB.Split(' ');

                    if (termosArqA[0] == termosArqB[0])
                    {
                        teste = new string[termosArqA.Length + termosArqB.Length];

                    }
                }
            }

        }

        ////public static void MS(List<List<string[]>> vetor)
        ////{
        ////    mergeSort(vetor, 0, vetor.Count);
        ////}
        ////private static void mergeSort(List<List<string[]>> vetor, int inicio, int fim)
        ////{
        ////    if (inicio < fim)
        ////    {
        ////        int meio = (inicio + fim) / 2;
        ////        mergeSort(vetor, inicio, meio);
        ////        mergeSort(vetor, meio + 1, fim);
        ////        intercalar2(vetor, inicio, meio, fim);
        ////    }
        ////}
        ////private static void intercalar(List<string> vetor, int inicio, int meio, int fim)
        ////{
        ////    // Quantidade de elementos das 2 metades do vetor
        ////    int tamVetorTemp = fim - inicio + 1;
        ////    int[] vetorTemp = new int[tamVetorTemp];
        ////    int dest = 0;
        ////    // Copiando os dados das 2 metades do vetor
        ////    // para o vetor temporário
        ////    for (int i = inicio; i <= meio; i++)
        ////        vetorTemp[dest++] = vetor[i];
        ////    for (int i = meio + 1; i <= fim; i++)
        ////        vetorTemp[dest++] = vetor[i];
        ////    dest = inicio;
        ////    int pi = 0;
        ////    int pj = (int)Math.Ceiling(tamVetorTemp / 2.0);
        ////    int copia1 = 0;
        ////    int copia2 = 0;
        ////    // Quantidade de elementos da primeira metade do vetor
        ////    int qtElSubv1 = meio - inicio + 1;
        ////    // Quantidade de elementos da segunda metade do vetor
        ////    int qtElSubv2 = fim - meio;
        ////    while ((copia1 < qtElSubv1) && (copia2 < qtElSubv2))
        ////    {
        ////        if (vetorTemp[pi] < vetorTemp[pj])
        ////        {
        ////            vetor[dest++] = vetorTemp[pi++];
        ////            copia1++;
        ////        }
        ////        else
        ////        {
        ////            vetor[dest++] = vetorTemp[pj++];
        ////            copia2++;
        ////        }
        ////    }
        ////    while ((copia1 < qtElSubv1))
        ////    {
        ////        vetor[dest++] = vetorTemp[pi++];
        ////        copia1++;
        ////    }
        ////    while ((copia2 < qtElSubv2))
        ////    {
        ////        vetor[dest++] = vetorTemp[pj++];
        ////        copia2++;
        ////    }
        ////}
        ////private static void intercalar2(List<string> vetor, int inicio, int meio, int fim)
        ////{
        ////    // Quantidade de elementos das 2 metades do vetor
        ////    List<List<string[]>> vetorTemp = new List<List<string[]>>();
        ////    int tamanho = vetorTemp.Count();
        ////    int tamVetorTemp = fim - inicio + 1;
        ////            int[] vetorTemp = new int[tamVetorTemp];

        ////    // Copiando os dados das 2 metades do vetor
        ////    // para o vetor temporário
        ////    int desti = 0;
        ////    int destf = tamanho;
        ////    for (int k = inicio; k <= meio; k++)
        ////        vetorTemp[desti++] = vetor[k];
        ////    for (int l = meio + 1; l <= fim; l++)
        ////        vetorTemp[destf--] = vetor[l];
        ////    int i = 0;//inicio;
        ////    int j = tamanho - 1;//fim;
        ////    for (int k = inicio; k <= fim; k++)
        ////        if (string.Compare(vetorTemp[i], vetorTemp[j]) == 1)
        ////            vetor[k] = vetorTemp[i++];
        ////        else
        ////            vetor[k] = vetorTemp[j--];
        ////    int desti = 0;
        ////    int destf = tamVetorTemp - 1;
        ////    for (int k = inicio; k <= meio; k++)
        ////        vetorTemp[desti++] = vetor[k];
        ////    for (int l = meio + 1; l <= fim; l++)
        ////        vetorTemp[destf--] = vetor[l];
        ////    int i = 0;//inicio;
        ////    int j = tamVetorTemp - 1;//fim;
        ////    for (int k = inicio; k <= fim; k++)
        ////        if (vetorTemp[i] <= vetorTemp[j])
        ////            vetor[k] = vetorTemp[i++];
        ////        else
        ////            vetor[k] = vetorTemp[j--];
        ////}

    }
}